package mgos

/***************************************************
 * @author 	zander
 * @time	2018年1月2日14:42:55
 * @brief	测试实体（mongodb）
 ***************************************************/
const (
	TOKEN_ACTION    = "app_midway"
	TOKEN_TYPE_USER = "user"
	TOKEN_TYPE_CAR  = "car"
)

//user表
type ConfigUser struct {
	ID          *string                 `json:"_id" bson:"_id"`
	Created     *int64                  `json:"created" bson:"created"`
	Changed     *int64                  `json:"updated" bson:"changed"`
	Mobile      *string                 `json:"mobile" bson:"mobi"`                 //用户手机号
	Nm          *string                 `json:"name" bson:"nm"`                     //用户名
	Cid         *string                 `json:"cid" bson:"cid"`                     //客户ID
	Pwd         *string                 `json:"pwd" bson:"pwd"`                     //密码
	RyRegister  *bool                   `json:"ry_register" bson:"ry_register"`     //是否有注册过融云账户
	RyToken     *string                 `json:"ry_token" bson:"ry_token"`           //融云token
	RyTokenTime *int64                  `json:"ry_token_time" bson:"ry_token_time"` //token申请时间，预留，万一之后要设置token超时可使用
	RyBlock     *bool                   `json:"ry_block" bson:"ry_block"`           //用户封禁状态
	VerifyCode  *string                 `json:"verify_code" bson:"verify_code"`     //验证码
	VerifyExp   *int64                  `json:"verify_exp" bson:"verify_exp"`       //验证码超时时间
	VerifyTime  *int64                  `json:"verify_time" bson:"verify_time"`     //验证码申请时间
	Roles       *string                 `json:"roles" bson:"roles"`                 //用户权限
	Sn          *string                 `json:"sn" bson:"sn"`                       //用户权限
	Pic         *string                 `json:"pic" bson:"pic"`                     //头像
	Short       *string                 `json:"short" bson:"short"`                 //短号
	Email       *string                 `json:"email" bson:"email"`                 //邮箱
	Active      *map[string]interface{} `json:"active" bson:"active"`               //用户权限
	Sign        *map[string]interface{} `json:"sign" bson:"sign"`                   //最新打卡信息
	Tel         *string                 `json:"tel" bson:"tel"`                     //电话
	Duty        *string                 `json:"dunm" bson:"dunm"`                   //用户权限
	DutyId      *int                    `json:"duty" bson:"duty"`                   //用户权限
}

// 站点树
type ConfigStree struct {
	Id *string                `json:"_id" bson:"_id"` //ID
	Cs map[string]interface{} `json:"cs" bson:"cs"`   //子树
	Nm *string                `json:"nm" bson:"nm"`   //名称
	T  *string                `json:"t" bson:"t"`     //类型
	LL map[string]string      `json:"ll" bson:"ll"`   // 经纬度
}

// 系统
type ConfigCustomer struct {
	Id   *string `json:"_id" bson:"_id"`   //ID
	Name *string `json:"name" bson:"nm"` //名称
	Full *string `json:"full" bson:"full"` //公司名称
	Sn   *string `json:"sn" bson:"sn"`     //系统名称
}

// auth 表
type ConfigAuth struct {
	ID *string `json:"_id" bson:"_id"`

	Uid    *string `json:"uid" bson:"uid"`       //用户ID
	Cid    *string `json:"cid" bson:"cid"`       //token值
	Ext    *string `json:"ext" bson:"ext"`       //token值
	Exp    *int64  `json:"exp" bson:"exp"`       //到期时间
	Aid    *string `json:"aid" bson:"aid"`       //当前token是否可用
	Type   *string `json:"type" bson:"type"`     //使用者类型
	Action *string `json:"action" bson:"action"` //理论上为app_midway
	State  *int    `json:"state" bson:"state"`   //是否冻结
}

// car 表
type ConfigCar struct {
	ID      *string `json:"_id" bson:"_id"`
	Created *int64  `json:"created" bson:"created"`
	Changed *int64  `json:"updated" bson:"changed"`

	Sn     *string                 `json:"sn" bson:"sn"`         //车牌号
	Cid    *string                 `json:"cid" bson:"cid"`       //车牌号
	Area   *string                 `json:"area" bson:"area"`     //轨迹
	Driver *string                 `json:"driver" bson:"driver"` //驾驶人
	Lxfs   *string                 `json:"lxfs" bson:"lxfs"`     //联系方式
	Sign   *map[string]interface{} `json:"sign" bson:"sign"`     //最新打卡信息
}

// application 表
type ConfigApplication struct {
	ID      *string `json:"id" bson:"_id"` //ID
	Created *int64  `json:"created" bson:"created"`
	Changed *int64  `json:"updated" bson:"changed"`
	Name    *string `json:"name" bson:"nm"` //名称
	Cid     *string `json:"cid" bson:"cid"` //客户系统ID
	Sn      *string `json:"sn" bson:"sn"`   //系统类型
}

// role 表
type ConfigRole struct {
	ID      *string   `json:"id" bson:"_id"` //ID
	Created *int64    `json:"created" bson:"created"`
	Changed *int64    `json:"updated" bson:"changed"`
	Name    *string   `json:"name" bson:"nm"`     //名称
	Cid     *string   `json:"cid" bson:"cid"`     //客户系统ID
	Sn      *string   `json:"sn" bson:"sn"`       //系统类型
	Menus   []*string `json:"menus" bson:"menus"` //菜单权限
	Dks     []*string `json:"dks" bson:"dks"`     //数据类型权限
}

// menu 表
type ConfigMenu struct {
	ID      *string `json:"id" bson:"_id"` //ID
	Created *int64  `json:"created" bson:"created"`
	Changed *int64  `json:"updated" bson:"changed"`
	MId     *string `json:"id" bson:"id"`         //ID
	Name    *string `json:"name" bson:"nm"`       //名称
	Level   *string `json:"lv" bson:"lv"`         //层级
	Sn      *string `json:"sn" bson:"sn"`         //系统类型
	Icon    *string `json:"icon" bson:"icon"`     //系统类型
	Val     *string `json:"val" bson:"val"`       //系统类型
	Weight  *int64  `json:"weight" bson:"weight"` //系统类型
}

// deps 表
type ConfigDeps struct {
	ID      *string `json:"id" bson:"_id"` //ID
	Created *int64  `json:"created" bson:"created"`
	Changed *int64  `json:"updated" bson:"changed"`
	Nm      *string `json:"nm" bson:"nm"`
	Sn      *string `json:"sn" bson:"sn"`       //系统类型
	Pic     *string `json:"pic" bson:"pic"`     //系统类型
	Mount   *int    `json:"mount" bson:"mount"` //系统类型
	Cid     *string `json:"cid" bson:"cid"`     //客户系统ID
}

// organization 表
type ConfigOrganization struct {
	ID      *string   `json:"id" bson:"_id"` //ID
	Created *int64    `json:"created" bson:"created"`
	Changed *int64    `json:"updated" bson:"changed"`
	Code    *string   `json:"code" bson:"code"`
	Nm      *string   `json:"nm" bson:"nm"`
	Cid     *string   `json:"cid" bson:"cid"` //客户系统ID
	Sn      *string   `json:"sn" bson:"sn"`   //系统类型
	Ids     []*string `json:"ids" bson:"ids"` //系统类型
}

// workplan_month 表
type ConfigWorkplanMonth struct {
	ID      *string `json:"id" bson:"_id"` //ID
	Created *int64  `json:"created" bson:"created"`
	Changed *int64  `json:"updated" bson:"changed"`
	Bm      *string `json:"bm" bson:"bm"`
}

// Graphic4mobile 表
type ConfigGraphic4MobileSensor struct {
	Name       *string `json:"name" bson:"nm"`               //传感器简称
	SensorName *string `json:"sensor_name" bson:"sensor_nm"` //传感器名称
	Id         *string `json:"_id" bson:"_id"`               //传感器ID
	Sensor     *string `json:"sensor" bson:"sensor"`         //传感器位号
}
type ConfigGraphic4Mobile struct {
	ID      *string `json:"id" bson:"_id"` //ID
	Created *int64  `json:"created" bson:"created"`
	Changed *int64  `json:"updated" bson:"changed"`

	Name    *string                       `json:"name" bson:"nm"`              //水厂名称
	Cid     *string                       `json:"cid" bson:"cid"`              //客户系统ID
	Did     *string                       `json:"did" bson:"div"`              //片区ID
	DivName *string                       `json:"division_name" bson:"div_nm"` //片区名称
	Sensors []*ConfigGraphic4MobileSensor `json:"sensors" bson:"sensors"`      //包含传感器列表
	Pumps   []*ConfigGraphic4MobileSensor `json:"pumps" bson:"pumps"`          //包含泵状态
}
